In computer graphics, image scaling is the process of resizing a digital image. Image scaling is a non-trivial process that involves a trade-off between efficiency, smoothness, and sharpness. As the size of an image is increased, the pixels which comprise the image become increasingly visible. Apart from fitting a smaller display area, image size is most commonly decreased in order to produce thumbnails. Enlarging an image is less common because, in zooming an image, it may not be possible to discover any more information in the image than which already exists and image quality tends to suffer. Classical methods for image resizing, such as cropping and scaling, do not take into account the content of the image to be resized. Such methods are prone to distorting image content which may be important to the viewer. In order to preserve regions of the image which may be visually important to the viewer while eliminating the less important ones, image resizing techniques need to be made content aware.
Seam carving is one image resizing method. Such a method operates on “seams” that run from one side of the image across to the other. Removing all pixels in a seam reduces the image by one row or one column of pixels. Conversely, adding seams to the image can enlarge the image by one row or column of pixels. If multiple seams are removed from the same areas within the image, distortions are likely to arise and be visible in the resized image. Methods are needed for seam selection (e.g., the identification of a seam to be removed or inserted) such that repeated insertion or removal of seams will not keep occurring in the same image area, thus reducing distortions in the resized image.
Accordingly, what is needed in this art are increasingly sophisticated methods for seam selection in a content-aware digital image resizing system.